// @ts-nocheck
$(function () {
    getSum(); // 计算总计
    // 1. 全选 全不选功能模块
    // 就是把全选按钮（checkall）的状态赋值给三个小的按钮(j-checkbox）就可以了
    // 改变事件 change
    $(".checkall").change(function () {
        $(".j-checkbox,.checkall").prop("checked", $(this).prop("checked"));
        if ($(this).prop("checked")) {  // 选中添加check-cart-item类
            $(".cart-item").addClass("check-cart-item");
        } else {  // 没选中移除check-cart-item类
            $(".cart-item").removeClass("check-cart-item");
        }
    })

    // 2. 如果小复选框被选中的个数等于3 就应该把全选按钮选上，否则全选按钮不选。
    // 通过被选中复选框的值改变全选框按钮
    // $(".j-checkbox").length 这个是所有的小复选框的个数
    $(".j-checkbox").change(function () {
        // .j-checkbox:checked选中状态的复选框
        if ($(".j-checkbox:checked").length === $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }
        if ($(this).prop("checked")) {  // 选中添加check-cart-item类
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {  // 没选中移除check-cart-item类
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }

    })

    // 3. 增减商品数量模块 首先声明一个变量，当我们点击+号（increment），就让这个值++，然后赋值给文本框。
    $(".increment").click(function () {  // 加号
        // 得到兄弟文本框的值
        var n = $(this).siblings(".itxt").val();
        n++;
        $(this).siblings(".itxt").val(n);
        // 3.1 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
        // var p = $(this).parent().parent().siblings(".p-price").html();
        // parents(‘选择器’)可以返回指定祖先元素    toFixed(n) 保留小数n位
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        price = (n * p.substr(1)).toFixed(2);
        $(this).parent().parent().siblings(".p-sum").html("￥" + price);

        getSum();  // 计算总计
    })
    $(".decrement").click(function () {  // 减号
        var n = $(this).siblings(".itxt").val();
        if (n == 1) {
            return false;  // 商品数量为1 退出点击事件
        }
        n--;
        $(this).siblings(".itxt").val(n);
        // 3.1 计算小计模块 根据文本框的值 乘以 当前商品的价格  就是 商品的小计
        var p = $(this).parent().parent().siblings(".p-price").html();  // 单价
        price = (n * p.substr(1)).toFixed(2);
        $(this).parent().parent().siblings(".p-sum").html("￥" + price);

        getSum();  // 计算总计
    })
    //  4. 用户修改文本框的值 计算 小计模块  
    $(".itxt").change(function () {
        var n = $(this).val();  // 获取修改后的值
        var p = $(this).parents(".p-num").siblings(".p-price").html();
        price = (n * p.substr(1));
        $(this).parent().parent().siblings(".p-sum").html("￥" + price.toFixed(2));

        getSum();  // 计算总计
    });
    // 5. 计算总计和总额模块
    function getSum() {
        var count = 0; // 计算总件数
        var money = 0; // 计算总价钱
        $(".itxt").each(function (i, ele) {  // i索引号 ele元素
            count += parseInt($(ele).val());
        });
        $(".amount-sum em").text(count);
        $(".p-sum").each(function (i, ele) {
            money += parseFloat($(ele).text().substr(1));  // 取值，去除￥符号
        });
        $(".price-sum em").text("￥" + money.toFixed(2))  // 保留两位小数
    };
    // 6. 删除商品模块
    $(".p-action a").click(function () {  // 商品后面的删除按钮
        $(this).parents(".cart-item").remove();
        getSum()  // 计算总计
    });
    $(".remove-batch").click(function () {  // 删除选中的商品
        // .j-checkbox:checked选中状态的复选框
        $(".j-checkbox:checked").parents(".cart-item").remove();
        getSum()  // 计算总计
    });
    $(".clear-all").click(function () {  // 清空购物车 删除全部商品
        $(".cart-item").remove();
        getSum()  // 计算总计
    });

})